#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_LINE_LENGTH 256

// 函数用于提取并处理符合条件的数据
void process_data(FILE *input_file, FILE *output_file) {
    char line[MAX_LINE_LENGTH];
    
    // 逐行读取数据直到文件结束
    while (fgets(line, MAX_LINE_LENGTH, input_file)) {
        // 检查是否以"$R"开头
        if (strncmp(line, "$R", 2) == 0) {
            double r_value, p_value, y_value, data[6];
            // 用 sscanf 提取数据
            int scanned = sscanf(line, "$R%lf,P%lf,Y%lf,%lf,%lf,%lf,%lf,%lf,%lf*FF",
                                  &r_value, &p_value, &y_value,
                                  &data[0], &data[1], &data[2],
                                  &data[3], &data[4], &data[5]);
            
            // 如果成功提取到9个数据，且符合要求（以-178.05开始）
            if (scanned == 9) {
                // 将符合条件的结果写入output.txt
                fprintf(output_file, "%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f;\n",
                        r_value, p_value, y_value,
                        data[0], data[1], data[2],
                        data[3], data[4], data[5]);
            }
        }
    }
}

int main() {
    FILE *input_file = fopen("input.txt", "r");
    if (input_file == NULL) {
        perror("Error opening input file");
        return 1;
    }

    FILE *output_file = fopen("output.txt", "w");
    if (output_file == NULL) {
        perror("Error opening output file");//prttor会显示错误信息
        fclose(input_file);
        return 1;
    }

    // 调用处理函数
    process_data(input_file, output_file);

    // 关闭文件
    fclose(input_file);
    fclose(output_file);

    printf("Processing complete. Results written to output.txt.\n");
    return 0;
}
